//
// Created by iimt on 21-2-25.
//

#ifndef VISUALORIENTATION_RegisterService_H
#define VISUALORIENTATION_RegisterService_H
//#include <Eigen/Geometry>
//#include <opencv/cxeigen.hpp>
//#include <opencv2/opencv.hpp>
#include <QtWidgets>
#include <QDebug>
#include <QComboBox>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <iostream>
#include <math.h>
#include <netdb.h>
#include <time.h>
#include <regex>
#include <driver/IIMTDriver.h>
/**
 * sukai
 * 22-01-18
 * 系统注册，授权服务
 * rosrun slamservice currencyChassis_registerServiceMain_node
 *
 */

#define random(x) rand()%(x)
using namespace std;
class RegisterService: public QWidget {
Q_OBJECT
public:
    RegisterService( QWidget *parent = nullptr);

    ~RegisterService() override;
private:


    //字典数据不存在重复调用字典数据
    int  zz=0;
    //字典数据
    map<string, string> dictionariesMap;
    //绿色字体
    QString recv_prefix_green;
    //红色字体
    QString recv_prefix_red;


    //布局
    QFormLayout *layout;

    QLineEdit *editFirst;
    QLineEdit *editSecond;
    QLineEdit *editThird;
    QLineEdit *editFifth;
    int aa =135291;
    int bb=9;
    int cc =369;

    // 发送邮箱
    QPushButton *btnSend;
    //注册
    QPushButton *btnBackSend;
    //取消
    QPushButton *cancelBtn;
    //重置
    QPushButton *reBtnSend;

    //清除日志
    QPushButton clear_logBtn;
    //记录日志
    QTextEdit logTextEdit;


     //机器人编号
     string  robotNumber="EMPTY";
     //商户编号
     string   merchantNumber="EMPTY";
     //商户名称
     string   merchantName="EMPTY";
     //主机名称
     string   hostname="iimt";
     string log_file_path ="";

private:
    //初始化控件和布局d
    void initWidgets();
    //按钮点击事件
    void bindSignal();


    //发送邮箱验证
    void clickSend();
    //注册
    void clickSendBack();


     //保存日志
    void Log_Save(const char*str,QString logfileTimeName);

    //保存注册文件
    void saveRegisterFile(vector<QString> msgs,int i);
    //读取 registerService.txt 文件中数据
    void readFile(map<QString, QString> &macMap);
    //解析 registerService.txt 文件数据
    void parseMoveScript(QString & msg,map<QString, QString> &macMap);
    //注册文件写入
    void wrirtFile(QString &msg);
    void initvariable();


    //显示日志
    void show_console(QString msg_log,QString send);

    //清除日志
    void clear_log();
    //重置
    void reClickSend();

    //取消
    void cancelGoal();
    //等待5分钟执行下一条送餐指令： 1000*60*5
    void waitGoalWithTime();



     //检查数据库文件(所有类型)是否存在
    // 1:存在 0:不存在
    int IsFileExist(const char* path);
    //sukai 设置返回函数
    void setCallBack();
    //sukai 发送数据
    void sendMsg(QString msg);


};


#endif //VISUALORIENTATION_RegisterService_H
